/**
 * 文件上传Props
 */
export const uploadFilledProps = {
  /**
   * @description 是否禁用上传 禁止上传则不可已使用任意的上传方式（点击、拖拽）
   * @type {Boolean}
   * @default false
   */
  disabled: {
    type: Boolean,
    default: false
  },

  /**
   * @description 是否开启拖拽上传 如果没有开启拖拽上传，则不能使用拖拽的方式，只能使用点击上传
   * @type {Boolean}
   * @default true
   */
  drag: {
    type: Boolean,
    default: true
  },

  /**
   * @description 指定上传的文件类型
   * @type {String}
   * @default "*"
   */
  accept: {
    type: String,
    default: "*"
  },

  /**
   * @description 是否支持多选文件
   * @type {Boolean}
   * @default false
   */
  multiple: {
    type: Boolean,
    default: false
  }
};

/**
 * @description 文件上传Emits
 */
export const uploadEmits = {
  /**
   * @description 获取上传的文件类型
   * @param files 上传的文件列表
   * @type {File | FileList}
   * @returns
   */
  getFiles: (files: File | FileList) => files,

  /**
   * @description 文件上传超出限制时执行
   * @param {Number} exceed 文件超出数量
   * @returns
   */
  onExceed: (exceed: number) => exceed
};

/**
 * @description 文件上传Emits类型
 */
export type UploadFilledEmits = typeof uploadEmits;

/**
 * @description 文件上传Props类型
 */
export type UploadFilledProps = typeof uploadFilledProps;
